package com.dk.pojo;

import java.util.ArrayList;
import java.util.List;

public class AchievementExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AchievementExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAchievementIdIsNull() {
            addCriterion("achievement_id is null");
            return (Criteria) this;
        }

        public Criteria andAchievementIdIsNotNull() {
            addCriterion("achievement_id is not null");
            return (Criteria) this;
        }

        public Criteria andAchievementIdEqualTo(Integer value) {
            addCriterion("achievement_id =", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdNotEqualTo(Integer value) {
            addCriterion("achievement_id <>", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdGreaterThan(Integer value) {
            addCriterion("achievement_id >", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("achievement_id >=", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdLessThan(Integer value) {
            addCriterion("achievement_id <", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdLessThanOrEqualTo(Integer value) {
            addCriterion("achievement_id <=", value, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdIn(List<Integer> values) {
            addCriterion("achievement_id in", values, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdNotIn(List<Integer> values) {
            addCriterion("achievement_id not in", values, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdBetween(Integer value1, Integer value2) {
            addCriterion("achievement_id between", value1, value2, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchievementIdNotBetween(Integer value1, Integer value2) {
            addCriterion("achievement_id not between", value1, value2, "achievementId");
            return (Criteria) this;
        }

        public Criteria andAchNameIsNull() {
            addCriterion("ach_name is null");
            return (Criteria) this;
        }

        public Criteria andAchNameIsNotNull() {
            addCriterion("ach_name is not null");
            return (Criteria) this;
        }

        public Criteria andAchNameEqualTo(String value) {
            addCriterion("ach_name =", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameNotEqualTo(String value) {
            addCriterion("ach_name <>", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameGreaterThan(String value) {
            addCriterion("ach_name >", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameGreaterThanOrEqualTo(String value) {
            addCriterion("ach_name >=", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameLessThan(String value) {
            addCriterion("ach_name <", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameLessThanOrEqualTo(String value) {
            addCriterion("ach_name <=", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameLike(String value) {
            addCriterion("ach_name like", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameNotLike(String value) {
            addCriterion("ach_name not like", value, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameIn(List<String> values) {
            addCriterion("ach_name in", values, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameNotIn(List<String> values) {
            addCriterion("ach_name not in", values, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameBetween(String value1, String value2) {
            addCriterion("ach_name between", value1, value2, "achName");
            return (Criteria) this;
        }

        public Criteria andAchNameNotBetween(String value1, String value2) {
            addCriterion("ach_name not between", value1, value2, "achName");
            return (Criteria) this;
        }

        public Criteria andAchDescribeIsNull() {
            addCriterion("ach_describe is null");
            return (Criteria) this;
        }

        public Criteria andAchDescribeIsNotNull() {
            addCriterion("ach_describe is not null");
            return (Criteria) this;
        }

        public Criteria andAchDescribeEqualTo(String value) {
            addCriterion("ach_describe =", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeNotEqualTo(String value) {
            addCriterion("ach_describe <>", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeGreaterThan(String value) {
            addCriterion("ach_describe >", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeGreaterThanOrEqualTo(String value) {
            addCriterion("ach_describe >=", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeLessThan(String value) {
            addCriterion("ach_describe <", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeLessThanOrEqualTo(String value) {
            addCriterion("ach_describe <=", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeLike(String value) {
            addCriterion("ach_describe like", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeNotLike(String value) {
            addCriterion("ach_describe not like", value, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeIn(List<String> values) {
            addCriterion("ach_describe in", values, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeNotIn(List<String> values) {
            addCriterion("ach_describe not in", values, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeBetween(String value1, String value2) {
            addCriterion("ach_describe between", value1, value2, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchDescribeNotBetween(String value1, String value2) {
            addCriterion("ach_describe not between", value1, value2, "achDescribe");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateIsNull() {
            addCriterion("ach_ecaluate is null");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateIsNotNull() {
            addCriterion("ach_ecaluate is not null");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateEqualTo(String value) {
            addCriterion("ach_ecaluate =", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateNotEqualTo(String value) {
            addCriterion("ach_ecaluate <>", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateGreaterThan(String value) {
            addCriterion("ach_ecaluate >", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateGreaterThanOrEqualTo(String value) {
            addCriterion("ach_ecaluate >=", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateLessThan(String value) {
            addCriterion("ach_ecaluate <", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateLessThanOrEqualTo(String value) {
            addCriterion("ach_ecaluate <=", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateLike(String value) {
            addCriterion("ach_ecaluate like", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateNotLike(String value) {
            addCriterion("ach_ecaluate not like", value, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateIn(List<String> values) {
            addCriterion("ach_ecaluate in", values, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateNotIn(List<String> values) {
            addCriterion("ach_ecaluate not in", values, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateBetween(String value1, String value2) {
            addCriterion("ach_ecaluate between", value1, value2, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andAchEcaluateNotBetween(String value1, String value2) {
            addCriterion("ach_ecaluate not between", value1, value2, "achEcaluate");
            return (Criteria) this;
        }

        public Criteria andRightIdIsNull() {
            addCriterion("right_id is null");
            return (Criteria) this;
        }

        public Criteria andRightIdIsNotNull() {
            addCriterion("right_id is not null");
            return (Criteria) this;
        }

        public Criteria andRightIdEqualTo(Integer value) {
            addCriterion("right_id =", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdNotEqualTo(Integer value) {
            addCriterion("right_id <>", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdGreaterThan(Integer value) {
            addCriterion("right_id >", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("right_id >=", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdLessThan(Integer value) {
            addCriterion("right_id <", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdLessThanOrEqualTo(Integer value) {
            addCriterion("right_id <=", value, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdIn(List<Integer> values) {
            addCriterion("right_id in", values, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdNotIn(List<Integer> values) {
            addCriterion("right_id not in", values, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdBetween(Integer value1, Integer value2) {
            addCriterion("right_id between", value1, value2, "rightId");
            return (Criteria) this;
        }

        public Criteria andRightIdNotBetween(Integer value1, Integer value2) {
            addCriterion("right_id not between", value1, value2, "rightId");
            return (Criteria) this;
        }

        public Criteria andAchImgIsNull() {
            addCriterion("ach_img is null");
            return (Criteria) this;
        }

        public Criteria andAchImgIsNotNull() {
            addCriterion("ach_img is not null");
            return (Criteria) this;
        }

        public Criteria andAchImgEqualTo(String value) {
            addCriterion("ach_img =", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgNotEqualTo(String value) {
            addCriterion("ach_img <>", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgGreaterThan(String value) {
            addCriterion("ach_img >", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgGreaterThanOrEqualTo(String value) {
            addCriterion("ach_img >=", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgLessThan(String value) {
            addCriterion("ach_img <", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgLessThanOrEqualTo(String value) {
            addCriterion("ach_img <=", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgLike(String value) {
            addCriterion("ach_img like", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgNotLike(String value) {
            addCriterion("ach_img not like", value, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgIn(List<String> values) {
            addCriterion("ach_img in", values, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgNotIn(List<String> values) {
            addCriterion("ach_img not in", values, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgBetween(String value1, String value2) {
            addCriterion("ach_img between", value1, value2, "achImg");
            return (Criteria) this;
        }

        public Criteria andAchImgNotBetween(String value1, String value2) {
            addCriterion("ach_img not between", value1, value2, "achImg");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}